﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;

namespace SimpleFMMatrix.ViewModel
{
    public class ADSRCurveDependencyObject : DependencyObject
    {
        public static readonly DependencyProperty CurveProperty =
            DependencyProperty.Register("Curve", typeof(Geometry), typeof(ADSRCurveDependencyObject),
                new PropertyMetadata(null));

        public static readonly DependencyProperty ClosedCurveProperty =
            DependencyProperty.Register("ClosedCurve", typeof(Geometry), typeof(ADSRCurveDependencyObject),
                new PropertyMetadata(null));

        public static readonly DependencyProperty ValueIncrementProperty =
            DependencyProperty.Register("ValueIncrement", typeof(double), typeof(ADSRCurveDependencyObject), 
                new PropertyMetadata(0.0));

        public static readonly DependencyProperty CurveWidthProperty =
            DependencyProperty.Register("CurveWidth", typeof(double), typeof(ADSRCurveDependencyObject), new PropertyMetadata(1.0));

        public Geometry Curve
        {
            get { return (Geometry)GetValue(CurveProperty); }
            set { SetValue(CurveProperty, value); }
        }

        public Geometry ClosedCurve
        {
            get { return (Geometry)GetValue(ClosedCurveProperty); }
            set { SetValue(ClosedCurveProperty, value); }
        }
        
        public double ValueIncrement
        {
            get { return (double)GetValue(ValueIncrementProperty); }
            set { SetValue(ValueIncrementProperty, value); }
        }

        public double CurveWidth
        {
            get { return (double)GetValue(CurveWidthProperty); }
            set { SetValue(CurveWidthProperty, value); }
        }



        internal ADSRCurveDependencyObject()
        {
        }
    }
}
